<?xml version='1.0' encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <link href="cpip.css" rel="stylesheet" type="text/css" />
    <title>File: /Users/paulross/dev/linux/linux-3.13/include/linux/kconfig.h</title>
  </head>
  <body>
    <h1>File: /Users/paulross/dev/linux/linux-3.13/include/linux/kconfig.h</h1>
    <p>Green shading in the line number column
means the source is part of the translation unit, red means it is conditionally excluded.
Highlighted line numbers link to the translation unit page. Highlighted macros link to
the macro page.</p>
    <pre><a name="1" /><span class="True">       1:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_noref.html#_X19MSU5VWF9LQ09ORklHX0hfMA__"><span class="b">__LINUX_KCONFIG_H</span></a>
<a name="2" /><span class="True">       2:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X19MSU5VWF9LQ09ORklHX0hfMA__"><span class="b">__LINUX_KCONFIG_H</span></a>
<a name="3" /><span class="True">       3:</span> 
<a name="4" /><span class="True">       4:</span> <span class="f">#</span><span class="n">include</span> <span class="f">&lt;</span><span class="b">generated</span><span class="f">/</span><span class="b">autoconf</span><span class="f">.</span><span class="b">h</span><span class="f">&gt;</span>
<a name="5" /><span class="True">       5:</span> 
<a name="6" /><span class="True">       6:</span> <span class="k">/*</span>
<a name="7" /><span class="True">       7:</span> <span class="k"> * Helper macros to use CONFIG_ options in C/CPP expressions. Note that</span>
<a name="8" /><span class="True">       8:</span> <span class="k"> * these only work with boolean and tristate options.</span>
<a name="9" /><span class="True">       9:</span> <span class="k"> */</span>
<a name="10" /><span class="True">      10:</span> 
<a name="11" /><span class="True">      11:</span> <span class="k">/*</span>
<a name="12" /><span class="True">      12:</span> <span class="k"> * Getting something that works in C and CPP for an arg that may or may</span>
<a name="13" /><span class="True">      13:</span> <span class="k"> * not be defined is tricky.  Here, if we have &quot;#define CONFIG_BOOGER 1&quot;</span>
<a name="14" /><span class="True">      14:</span> <span class="k"> * we match on the placeholder define, insert the &quot;0,&quot; for arg1 and generate</span>
<a name="15" /><span class="True">      15:</span> <span class="k"> * the triplet (0, 1, 0).  Then the last step cherry picks the 2nd arg (a one).</span>
<a name="16" /><span class="True">      16:</span> <span class="k"> * When CONFIG_BOOGER is not defined, we generate a (... 1, 0) pair, and when</span>
<a name="17" /><span class="True">      17:</span> <span class="k"> * the last step cherry picks the 2nd arg, we get a zero.</span>
<a name="18" /><span class="True">      18:</span> <span class="k"> */</span>
<a name="19" /><span class="True">      19:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_X19BUkdfUExBQ0VIT0xERVJfMV8w"><span class="b">__ARG_PLACEHOLDER_1</span></a> <span class="c">0</span><span class="f">,</span>
<a name="20" /><span class="True">      20:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_Y29uZmlnX2VuYWJsZWRfMA__"><span class="b">config_enabled</span></a><span class="f">(</span><span class="b">cfg</span><span class="f">)</span> <a href="cpu.c_macros_ref.html#_X2NvbmZpZ19lbmFibGVkXzA_"><span class="b">_config_enabled</span></a><span class="f">(</span><span class="b">cfg</span><span class="f">)</span>
<a name="21" /><span class="True">      21:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_X2NvbmZpZ19lbmFibGVkXzA_"><span class="b">_config_enabled</span></a><span class="f">(</span><span class="b">value</span><span class="f">)</span> <a href="cpu.c_macros_ref.html#_X19jb25maWdfZW5hYmxlZF8w"><span class="b">__config_enabled</span></a><span class="f">(</span><span class="b">__ARG_PLACEHOLDER_</span><span class="f">##</span><span class="b">value</span><span class="f">)</span>
<a name="22" /><span class="True">      22:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_X19jb25maWdfZW5hYmxlZF8w"><span class="b">__config_enabled</span></a><span class="f">(</span><span class="b">arg1_or_junk</span><span class="f">)</span> <a href="cpu.c_macros_ref.html#_X19fY29uZmlnX2VuYWJsZWRfMA__"><span class="b">___config_enabled</span></a><span class="f">(</span><span class="b">arg1_or_junk</span> <span class="c">1</span><span class="f">,</span> <span class="c">0</span><span class="f">)</span>
<a name="23" /><span class="True">      23:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_X19fY29uZmlnX2VuYWJsZWRfMA__"><span class="b">___config_enabled</span></a><span class="f">(</span><span class="b">__ignored</span><span class="f">,</span> <span class="b">val</span><span class="f">,</span> <span class="f">...</span><span class="f">)</span> <span class="b">val</span>
<a name="24" /><span class="True">      24:</span> 
<a name="25" /><span class="True">      25:</span> <span class="k">/*</span>
<a name="26" /><span class="True">      26:</span> <span class="k"> * IS_ENABLED(CONFIG_FOO) evaluates to 1 if CONFIG_FOO is set to &apos;y&apos; or &apos;m&apos;,</span>
<a name="27" /><span class="True">      27:</span> <span class="k"> * 0 otherwise.</span>
<a name="28" /><span class="True">      28:</span> <span class="k"> *</span>
<a name="29" /><span class="True">      29:</span> <span class="k"> */</span>
<a name="30" /><span class="True">      30:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_SVNfRU5BQkxFRF8w"><span class="b">IS_ENABLED</span></a><span class="f">(</span><span class="b">option</span><span class="f">)</span> \
<a name="31" /><span class="True">      31:</span>     <span class="f">(</span><a href="cpu.c_macros_ref.html#_Y29uZmlnX2VuYWJsZWRfMA__"><span class="b">config_enabled</span></a><span class="f">(</span><span class="b">option</span><span class="f">)</span> <span class="f">||</span> <a href="cpu.c_macros_ref.html#_Y29uZmlnX2VuYWJsZWRfMA__"><span class="b">config_enabled</span></a><span class="f">(</span><span class="b">option</span><span class="f">##</span><span class="b">_MODULE</span><span class="f">)</span><span class="f">)</span>
<a name="32" /><span class="True">      32:</span> 
<a name="33" /><span class="True">      33:</span> <span class="k">/*</span>
<a name="34" /><span class="True">      34:</span> <span class="k"> * IS_BUILTIN(CONFIG_FOO) evaluates to 1 if CONFIG_FOO is set to &apos;y&apos;, 0</span>
<a name="35" /><span class="True">      35:</span> <span class="k"> * otherwise. For boolean options, this is equivalent to</span>
<a name="36" /><span class="True">      36:</span> <span class="k"> * IS_ENABLED(CONFIG_FOO).</span>
<a name="37" /><span class="True">      37:</span> <span class="k"> */</span>
<a name="38" /><span class="True">      38:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_SVNfQlVJTFRJTl8w"><span class="b">IS_BUILTIN</span></a><span class="f">(</span><span class="b">option</span><span class="f">)</span> <a href="cpu.c_macros_ref.html#_Y29uZmlnX2VuYWJsZWRfMA__"><span class="b">config_enabled</span></a><span class="f">(</span><span class="b">option</span><span class="f">)</span>
<a name="39" /><span class="True">      39:</span> 
<a name="40" /><span class="True">      40:</span> <span class="k">/*</span>
<a name="41" /><span class="True">      41:</span> <span class="k"> * IS_MODULE(CONFIG_FOO) evaluates to 1 if CONFIG_FOO is set to &apos;m&apos;, 0</span>
<a name="42" /><span class="True">      42:</span> <span class="k"> * otherwise.</span>
<a name="43" /><span class="True">      43:</span> <span class="k"> */</span>
<a name="44" /><span class="True">      44:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_SVNfTU9EVUxFXzA_"><span class="b">IS_MODULE</span></a><span class="f">(</span><span class="b">option</span><span class="f">)</span> <a href="cpu.c_macros_ref.html#_Y29uZmlnX2VuYWJsZWRfMA__"><span class="b">config_enabled</span></a><span class="f">(</span><span class="b">option</span><span class="f">##</span><span class="b">_MODULE</span><span class="f">)</span>
<a name="45" /><span class="True">      45:</span> 
<a name="46" /><span class="True">      46:</span> <span class="f">#</span><span class="n">endif</span> <span class="k">/* __LINUX_KCONFIG_H */</span>
<a name="47" /><span class="True">      47:</span> </pre>
  </body>
</html>
